#include "seg.h"

void seg_tran(uchar *seg_str, uchar *seg_buf) {
	uchar i,j=0,temp;
	
	for(i=0; i<8; i++,j++) {
		switch(seg_str[j]) {
			case '0': temp = 0xc0; break;
			case '1': temp = 0xf9; break;
			case '2': temp = 0xa4; break;
			case '3': temp = 0xb0; break;
			case '4': temp = 0x99; break;
			case '5': temp = 0x92; break;
			case '6': temp = 0x82; break;
			case '7': temp = 0xf8; break;
			case '8': temp = 0x80; break;
			case '9': temp = 0x90; break;
			
			case 'F': temp = 0x8E; break; //1000 1110 8E
			case 'O': temp = 0xC0; break; //1100 0000 C0
			case 'L': temp = 0xC7; break; //1100 0111 C7

			case ' ': temp = 0xFF; break;
			default : temp = 0xFF;
		}
		if(seg_str[j+1] == '.') {
			j++;
			temp &= 0x7F;
		}
		seg_buf[i] = temp;
	}

}

void seg_disp(uchar seg_pos, uchar *seg_buf) {
	P0 = 0xFF;
	P2 = P2 & 0x1F | 0xE0;
	P2 &= 0x1F;
	
	P0 = 0x01<<seg_pos;
	P2 = P2 & 0x1F | 0xC0;
	P2 &= 0x1F;
	
	P0 = seg_buf[seg_pos];
	P2 = P2 & 0x1F | 0xE0;
	P2 &= 0x1F;
}

